In Information Technology (IT), software applications are important for running any business, and these applications act as the backbone of e-business. Examples of such applications include Supply Chain Management (SCM), Customer Relationship Management (CRM), Enterprise Content Management (ECM), and Enterprise Resource Planning (ERP). Typically, these software applications process large amounts of data, which is referred to by a main application or different applications. Such reference data is known as master data. For instance, in ERP systems, the master data includes customer data, item data, and account data. In addition, the master data includes information on products, item codes, and suppliers for the supply chain system. Additionally, in a finance system, the master data includes information on cost centers, department codes, and company hierarchies. Typically, the master data is present in a database in the form of one or more tables. The master data can be defined as the information required for core business entities to capture business transactions and to measure results of these entities. The master data is the data that drives the organization system, such as ERP & business intelligence, and therefore it is often one of the key assets and the core data of any organization. The immense importance of the master data elucidates that it is mandatory to maintain it.
Although a number of solutions are available in the market for maintaining the master data, there are a number of disadvantages associated with these solutions. One of the disadvantages is that these solutions follow a traditional approach of having a business component, a data component, and a presentation component for each table present in the database. Further, the data component, the business component, and the presentation component need to be developed separately for each table present in the database. Pursuant to this, the effort involved in maintaining master data is a multiple of the total number of tables that need to be maintained; thus, a significant amount of effort is required to use these solutions. A huge cost and time is also incurred while developing the components as above. Further, existing solutions focus on a code-duplication approach, leading to an accumulation of a large amount of code, which is difficult to maintain. Moreover, these solutions provide a framework that is not re-usable across different IT applications and/or platforms.
In view of the foregoing discussion, there is a need for designing a framework to maintain multiple data tables present in a database such that development effort, time, and cost are significantly reduced. The framework must focus on minimizing code duplication, thereby increasing the maintainability of a business application. Additionally, the framework should be re-usable across different IT applications.